Github Tutorial
Github is a great tool used for version control and codes storage. This document is trying to set up a simple standard in applying with Github for IC3 members.
Common commands
How to use Github Repository
Roles and privileges
- Repository admin group (admin)
- Maintainers (write)
- Others (read)
Operations
- Implement the repository descriptions and indicate the necessary information.
- Commits are supposed to be small and frequent
- Commit messages should be semantic:
- First line indicate the commit reason
- Other lines indicate whatt have been altered
- One Branch, one feature. All merges must be reviewed and confirmed by admin.
- Create Issues for recording bug fixing and other problems.
- Create Pull Request to merge with main branch. Repository admin should review the merge.
- Submit Release refer to project's progress. Repository admin should set up the release plan.
- Look into Submodules, submodules are useful to create clean repository when multiple related respositories are included.
danger
Fork to personal account is not recommended.
How to use Github Project(beta)
Github Project(beta) is a new feature developed by Github for planning and tracking work on GitHub, especially good for new projects.
There are two use cases here :
- Create the task board for each IC3 Core, core manager could assign, track, monitor tasks for the core members. Core manager could also make justifications of jobs based on the progress and evaluate the core memebers in a clear and better method.
- Create the phrases board for new project. Project manager could separate the new project into several phrases, and assign expected tasks and deadlines.It will be benefical to monitor the whole project progress.
How to use Github Project(classic)
Github Project(classic) is also named as 'Project(board)'. Project boards helps organize and prioritize jobs. We could create project boards for specific feature work, comprehensive roadmaps, or even release checklists.
tip
We recommend to create the project(board) for old/existed project to assign new jobs or fix issues. The feature should be replaced soon with Projects(beta).